package com.hanthink.quartz.mapper;

import java.util.List;

import com.hanthink.quartz.domain.EmEquipOperLog;
import com.hanthink.quartz.domain.EmItemFileInfo;
import com.hanthink.quartz.domain.EmPlanInfo;
import com.hanthink.quartz.domain.EquipStatusLog;
import com.hanthink.quartz.domain.EquipTaskItemInfo;
import com.hanthink.quartz.domain.TaskInfo;
import com.hanthink.quartz.domain.TaskItemInfo;
import com.hanthink.quartz.domain.TaskSelectInfo;

/**
 * @author Administrator 我的消息
 */
public interface TaskMapper {

	List<EmPlanInfo> queryPlanTaskInfobycode(String planCode);
	/**
	 * 查询计划任务消息
	 * 
	 * @param 消息对象
	 * @return 结果
	 */
	List<EmPlanInfo> queryPlanTaskInfo();

	List<EmPlanInfo> queryPlanTaskInfoProcess();
	/**
	 * 新增task
	 * 
	 * @param 消息对象
	 * @return 结果
	 */
	void saveTask(TaskInfo info);

	/**
	 * 新增设备状态日志
	 * 
	 * @param equipStatusLog 状态日志
	 * @return 结果
	 */
	void saveEquipStatusLog(EquipStatusLog equipStatusLog);

	/**
	 * 查询设备状态
	 * 
	 * @return 结果
	 */
	List<EquipStatusLog> queryEquipStatus();

	/**
	 * 查询点检项消息
	 * 
	 * @param 消息对象
	 * @return 结果
	 */
	List<EquipTaskItemInfo> queryJobInfo(EquipTaskItemInfo info);

	/**
	 * 新增TaskItem
	 * 
	 * @param 消息对象
	 * @return 结果
	 */
	void saveTaskItem(TaskItemInfo info);

	/**
	 * 查询TaskItem消息ID
	 * 
	 * @param 消息对象
	 * @return 结果
	 */
	TaskItemInfo queryTaskItemId();

	/**
	 * 查询点检选项消息
	 * 
	 * @param 消息对象
	 * @return 结果
	 */
	List<EmItemFileInfo> selectEmItemFileList(EmItemFileInfo info);

	void insertTaskSelect(TaskSelectInfo info);

	void updatePlanTask(EmPlanInfo info);

	void updatePlanTimeTaskById(EmPlanInfo info);

	void updatePlanTimeTaskByIdDay(EmPlanInfo info);

	void updateAllPlanTimeTask();

	void updateEquipAppointment(EmEquipOperLog emEquipOperLog);

	/**
	 * 查询同种类型未完成的任务，更新状态为系统标记完成
	 * 
	 * @param 设备Id
	 * @return 结果
	 */
	void updateTaskFinishBySystem(TaskInfo updateTask);

	/**
	 * 查询到周期未完成的任务，更新状态为系统标记完成
	 * 
	 * 
	 */
	void updateTaskFinishOverSystem();

	/**
	 * 换班时取消工艺点检未完成任务
	 * 
	 * 
	 */
	void updateTechTaskOnShiftChange();

	/**
	 * 统计设备对应未完成任务数量
	 * 
	 * @param 设备key
	 * @return 结果
	 */
	List<TaskInfo> selectEquipNofinishTask(Long eqKey);

	/**
	 * 查询设备操作时间距离计划下次执行时间是否超过周期
	 * 
	 * @param 设备key
	 * @return 结果
	 */
	Integer queryEquipOperTime(EmPlanInfo info);

	/**
	 * 查询预约开机设备
	 * 
	 * @param 设备key
	 * @return 结果
	 */
	List<EmEquipOperLog> selectEmAppointmentList();

	/**
	 * 保存设备操作日志
	 * 
	 */
	void saveEquipOperLog(EmEquipOperLog emEquipOperLog);

}
